// pages/register/register.js
Page({

  //  * 页面的初始数据
  data: {
    company: '',
    personalEmail: '',
    accessToken: '',
  },

  // 监听销方公司输入
  onInputCompany(e) {
    this.setData({
      company: e.detail.value
    });
  },

  // 监听个人邮箱输入
  onInputPersonalEmail(e) {
    this.setData({
      personalEmail: e.detail.value
    });
  },

  // 注册
  onRegister() {
    const {
      company,
      personalEmail
    } = this.data;

    // 销方公司和个人邮箱不能为空
    if (!company || !personalEmail) {
      wx.showToast({
        title: '销方公司和个人邮箱不能为空',
        icon: 'none'
      });
      return
    }

    // 邮箱格式
    const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.([a-zA-Z]{2,})$/;
    if (!personalEmail || !emailRegex.test(personalEmail)) {
      wx.showToast({
        title: '邮箱格式不正确',
        icon: 'success'
      });
      return
    }

    // 显示加载动画
    wx.showLoading({
      title: '注册中...',
      mask: true // 设置为 true 会显示透明的背景
    });

    wx.login({
      success: (res) => {
        // 确保获取到code
        if (res.code) {
          wx.request({
            url: 'https://developer.qlist.cn/idrm/wxapi/auth/tokens/sdlh', // 获取 AccessToken 的接口
            method: 'POST',
            header: {
              'Content-Type': 'application/json',
            },
            data: {
              js_code: 'IWIVUDYfJG0g8HQtjToplP0vPStW2dBp',
            },
            success: (tokenRes) => {
              const {
                company,
                personalEmail
              } = this.data
              console.log(tokenRes, 888);
              if (tokenRes.data.code === 0) {
                const accessToken = tokenRes.data.data.access_token; // 获取 AccessToken
                // 进行用户注册
                wx.request({
                  url: 'https://developer.qlist.cn/idrm/wxapi/accounts',
                  method: 'POST',
                  header: {
                    'Content-Type': 'application/json',
                    'Authorization': `Bearer ${accessToken}`, // 使用 AccessToken
                  },
                  data: {
                    company_name: company,
                    email: personalEmail,
                  },
                  success: (registerRes) => {
                    console.log(registerRes, 999);
                    if (registerRes.data.code === 0) {
                      wx.showToast({
                        title: '注册成功。',
                        icon: 'success',
                      });
                      // 跳转到其他页面
                      wx.switchTab({
                        url: 'pages/sign/sign'
                      });
                    } else if (registerRes.data.code === 100) {
                      wx.showToast({
                        title: registerRes.data.message + '请返回登录',
                        icon: 'none',
                      });
                    } else {
                      wx.showToast({
                        title: '注册失败：' + registerRes.data.message,
                        icon: 'none',
                      });
                    }
                  },
                  fail: (err) => {
                    wx.showToast({
                      title: '注册请求失败：' + err.errMsg,
                      icon: 'none',
                    });
                  },
                });
              } else {
                wx.showToast({
                  title: '获取 AccessToken 失败：' + tokenRes.data.message,
                  icon: 'none',
                });
              }
            },
            fail: (err) => {
              wx.showToast({
                title: '获取 AccessToken 请求失败：' + err.errMsg,
                icon: 'none',
              });
            },
          });
        } else {
          console.error('获取用户登录状态失败！' + res.errMsg);
        }
      },
    });



  },



  //  * 生命周期函数--监听页面加载
  onLoad(options) {

  },

  //  * 生命周期函数--监听页面初次渲染完成
  onReady() {

  },

  //  * 生命周期函数--监听页面显示
  onShow() {

  },

  //  * 生命周期函数--监听页面隐藏
  onHide() {

  },

  //  * 生命周期函数--监听页面卸载
  onUnload() {

  },

  // 页面相关事件处理函数--监听用户下拉动作
  onPullDownRefresh() {

  },

  //   页面上拉触底事件的处理函数
  onReachBottom() {

  },


  // 用户点击右上角分享
  onShareAppMessage() {

  }


})